package com.doit.day03

import scala.io.Source

object _10_练习题 {
  def main(args: Array[String]): Unit = {
    //1_1193_5_978300760
    // 1 用户id   1193 电影id   5 评分为5   978300760 时间戳

    //求出每一部电影平均分

    val array: Array[String] = Source.fromFile("C:\\Users\\34650\\Desktop\\课程资料\\资料\\ratings.txt")
      .getLines()
      .toArray
    //Array((电影id，分数)，(电影id，分数)，(电影id，分数)，(电影id，分数)，(电影id，分数))
    val tuples: Array[(String, String)] = array.map(line => {
      //1_1193_5_978300760
      val arr: Array[String] = line.split("_")
      //将一行数据拿过来进行切割
      //然后取电影id和分数返回
      (arr(1), arr(2))
    })
    //对电影id进行分组
    val map: Map[String, Array[(String, String)]] = tuples.groupBy(_._1)//得到一个map集合   key String 电影id  value Array[(String,String)] 661 Array(661_3,661_3,661_5,661_5)

    val id_avg: Map[String, Int] = map.map(tp => {
      val movie_id: String = tp._1
      val movie_id_Score: Array[(String, String)] = tp._2
      val scores: Array[Int] = movie_id_Score.map(tp => {
        val score: Int = tp._2.toInt
        score
      })
      val avg: Int = scores.sum / scores.length
      (movie_id, avg)
    })

    id_avg.toList.sortBy(-_._2).take(30).foreach(println)





  }

}
